import Data from './schema';

do { os::println { decode! { Data::@serialize canvas } } }
    . { crash-on-error };

const canvas: Data::Canvas :=
    { |Data::Canvas| {
        shapes: [
            { |Data::Shape| { |Data::Line| (
                { |Data::Point| { name: 'A', pos: { |Data::Vector| (1.0, 2.0) } } },
                { |Data::Point| { name: 'B', pos: { |Data::Vector| (3.0, 4.0) } } }) } },
            { |Data::Shape| { |Data::Polygon| {
                points: [
                    { |Data::Point| { name: 'O', pos: { |Data::Vector| (0.0, 0.0) } } },
                    { |Data::Point| { name: 'C', pos: { |Data::Vector| (-1.5, 0.5) } } },
                    { |Data::Point| { name: 'D', pos: { |Data::Vector| (-1.5, -2.0) } } }
                ]
            } } },
            { |Data::Shape| { |Data::Circle| {
                center: { |Data::Point| { name: 'P', pos: { |Data::Vector| (5.0, 5.0) } } },
                radius: 15.5
            } } }
        ]
    } };
